<?php

/**
 * Simple Site
 *
 * LICENÇA
 *
 * Este arquivo é parte do programa Simple Site
 *
 * Simple Site é um software livre; você pode redistribui-lo e/ou modifica-lo
 * dentro dos termos da Licença Pública Geral GNU como publicada pela
 * Fundação do Software Livre (FSF); na versão 2 da Licença, ou (na sua opnião)
 * qualquer versão.
 *
 * Este programa é distribuido na esperança que possa ser  util, mas
 * SEM NENHUMA GARANTIA; sem uma garantia implicita de ADEQUAÇÂO a qualquer
 * MERCADO ou APLICAÇÃO EM PARTICULAR. Veja a Licença Pública Geral GNU para
 * maiores detalhes.
 *
 * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este
 * programa, se não, escreva para a Fundação do Software Livre(FSF) Inc.,
 * 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 *
 * @category   Simple_Site
 * @package    Include
 * @license    http://www.gnu.org/licenses/gpl-2.0.html  GNU General Public License Version 2 (GPL 2)
 * @author     Alex Rodin <contato@alexrodin.com>
 */
/**
 * Impedindo acessos diretos a esse arquivo
 */
defined('SIMPLE_SITE') || header('Location: http://alexrodin.com/');

require_once 'Form/Validate.php';

require_once 'Email.php';

/**
 * Classe usada para o tratamento do formulário de contato
 *
 * @category   Simple_Site
 * @package    Include
 * @license    http://www.gnu.org/licenses/gpl-2.0.html  GNU General Public License Version 2 (GPL 2)
 * @author     Alex Rodin <contato@alexrodin.com>
 */
class Form
{

    /**
     * Faz todo o controle de verificação do formulário, e se nao houver erros,
     * solicita o envio dos emails
     * 
     * @global Form_Validate $formValidator
     * @global Email $emailSender
     */
    public function parse()
    {
        // A instancia do validator 
        global $formValidator;

        // Se necessário, instancia-o
        if ($formValidator == null)
        {
            $formValidator = new Form_Validate();
        }


        // Obtendo os dados do POST
        $name = trim($_POST['name']);
        $email = trim($_POST['email']);
        $subject = trim($_POST['subject']);
        $message = trim($_POST['message']);


        $formValidator->validateString($name, "name", 3, 75);
        $formValidator->validateEmail($email, "email");
        $formValidator->validateString($subject, "subject", 3, 75);
        $formValidator->validateString($message, "message", 5, 500);



        if (!$formValidator->hasErrors())
        {
            // A instancia do sender de email
            global $emailSender;

            // Os dados para o envio do email
            $data = array();

            $data['response_email'] = $email;
            $data['response_name'] = $name;
            $data['subject'] = $subject;
            $data['message'] = $message;


            // Se necessário, instancia-o
            if ($emailSender == null)
            {
                $emailSender = new Email($data);
                $emailSender->send();
            }
        }
    }

}

?>
